Scanner and printer profiling system

ABSTRACT

An improved color correction system and more specifically, a color profiling system for a printer and scanner. Highly accurate device independent printer profiles are generated using a scanner and processing means. The process utilizes the simultaneous scanning of a reference target and a print target to produce a scanner profile. Uncompensated printer profile is developed using the scanner profile and compensation transforms convert the uncompensated printer profile into the printer profile.

RELATED APPLICATIONS

This application is a divisional of U.S. application Ser. No.09/475,576, filed Jan. 5, 2000 and is herein incorporated in itsentirety by reference.

FIELD OF THE INVENTION

The present invention relates most generally to color correction ofcomputer peripheral devices and more particularly to a color profilingsystem for a printer and scanner.

BACKGROUND OF THE INVENTION

Color is defined as the perceptual result of light in the visible regionof the spectrum. The human retina has three types of color photoreceptorcells for illumination therefore it is possible to define color usingonly three numerical components.

The Commission Internationale de L'Éclairage (CIE) created astandardized system for representing color illuminations using threenumerical components to represent the mathematical coordinates of colorspace. The colors produced by reflective systems are a function not onlyof the colorants but also of the ambient illumination that requiresfurther spectral matching. The most familiar color systems include CIEXYZ, CIE xyY, CIE L*u*v* and CIE L*a*b*.

The CIE system is based on the description of color as luminancecomponent Y and spectral weighting curves components X and Z. Thespectral weighting curves for X and Z were standardized by the CIE basedon statistics from experiments involving human observers. The magnitudesof the XYZ components are proportional to physical energy, but theirspectral composition corresponds to the color matching characteristicsof human vision.

Most devices employ a device-dependent color-coordinate system tospecify the colors, and there are several different systems in themarket. The coordinate system is defined in a color space that maps thecolor coordinates to the color mechanism used by the device. Color spacerefers to an N-dimensional space in which each point in the spacecorresponds to a color. The cyan (C), magenta (M), yellow (Y) and black(K) (CMYK) color space is commonly used for color printers, where eachpoint in the CMYK color space corresponds to a color produced using aformula for the CMYK colorants. The color space could be representedsolely by CMY, but black is added as a colorant for print matter forseveral reasons. Printing black by overlaying cyan, yellow and magentaink is expensive and time-consuming, and the edges of the lettering tendto blur. The printing of three ink layers to produce black also causesthe printed paper to become wet requiring more time to dry.

The red, green and blue (RGB) system is a color space system that iscomplementary to the CMYK color space. The RGB system is athree-dimensional color space wherein each point in the color space isformed by some combination of RGB colorants. The RGB system is typicallyused for computer monitors, TV screens and scanners—illuminatingdevices.

The term color gamut is used to refer to a range of colors that can beproduced within a color space by a particular device from a set ofcolorants. The color gamut of a device corresponds to the visible colorsthat can possibly be produced by the device.

A digitized color image is represented as an array of pixels, whereineach pixel contains numerical components that define a color. The threecomponents are required to represent an image, and printing necessitatesa fourth component, namely black. Color printers and color copy machinestypically use three or four colorants, such as CMYK to produce the colorimage. The combination mix and density of the colorants produce a widearray of shades and colors.

While the three numerical values for digitized images could be providedby a color specification system, the color coding systems require fasterprocessing. Several other systems have developed for image coding,including linear RGB, nonlinear R′G′B′, nonlinear CMY, nonlinear CMYK,and derivatives of nonlinear R′G′B′ such as Y′CBCR. RGB values can betransformed to and from the CIE XYZ values by a three-by-three matrixtransform.

A scanner is used for converting print mediums such as pictures,artwork, documents, transparencies, and photographs into an electronicformat. The scanner captures an image by measuring colors reflected fromor transmitted through an image at many points and assigns numericalvalues to the colors at those points. Normally, the scanned image isrepresented as digital data, called pixels, in a Red-Green-Blue (RGB)representation. The pixels are arranged into a table of rows andcolumns, and contain information about the image such as the colorinformation for a particular pixel defined as some formula of theprimary colors R-G-B. Some scanners convert the RGB values to CMYKvalues.

The reproduction of color information from multiple devices and varyingenvironments is a common occurrence in the industry. Colored works aretransferred among variety of peripheral devices and the colorinformation processing systems within the various systems seek to ensurethe accuracy of the original work. For example, a computer with a colormonitor can interact with a colored printer, a scanner, digital camera,color copy machine, color facsimile and various other devices. As thecolor data passes from one medium to another, digital processingattempts to maintain a visual match within the capabilities of thedevices.

Advances in technology and computing means have made color reproductionsystems available to the general public. Many desktop publishing systemsemploy hardware and software that are affordable to users that need toproduce quality color work products. Unfortunately, the concept of ‘Whatyou see is what you get’ is normally lacking, and it is not uncommon tosee the desired image on the monitor but produce a print product thatlacks the quality characteristics desired.

Colors produced by two different devices based on the same input willdiffer, in part because of distortion of the signals which occur due tononlinear response characteristics of the electronics of the devices andthe method of selecting a color within a device color gamut. An inputsignal representing a particular color provided to two different devicestypically results in the devices producing two different colors. This istrue even when the input signal represents a color within the colorgamuts of both of devices.

In order to accomplish accurate color transfer, the individual devicesemploy color calibration techniques. Calibration is necessary to set thecolor response of the color reproduction devices. The process ofderiving a transform by comparing the device output to some referenceoutput and generating a lookup table is called system color calibration.A transform derived for a particular scanner-printer combination isreferred to as a closed system and the process is called closed systemcolor calibration.

The purpose of the calibration is to account for the color differences.The color differences actually refer to numerical differences betweenthe color specifications and more specifically refers to the perceptionof color differences in XYZ or RGB. Perceptual uniformity concernsnumerical differences that correspond to color differences at thethreshold of perceptibility. A perceptually uniform system is one wherea small change to a component value is equally perceptible across theentire range. XYZ and RGB systems are not perceptually uniform and areactually highly non-uniform. In order to transform XYZ into a uniformstandard, two systems developed, L*u*v* and L*a*b*, also written CIELUVand CIELAB. L*u*v* and L*a*b* improve perceptual non-uniformity butrequire highly complex computations to accommodate real-time display.

In most cases, an initial factory calibration creates calibration tablesthat are used by the digital processing schemes to make the colorreproduction devices conform to standards and to compensate for driftand other changes.

Various instruments and methods are used to calibrate devices for colorreproduction, including densitometers and calorimeters. A densitometermeasures the density of ink on a print patch in each of CMYK colorants.The densities are then compared to a scale of desired densities toproduce calibration curves. The data from the calibration curves is usedto correct the device so that it more closely resembles the scale data.

A calorimeter measures CIE values of color on a scale of printed patchesin each of the CMYK print colorants. The measured CIE values are thencompared with a corresponding scale of desired values to obtaincalibration curves, which correct the device so that is more closelyresembles the scale data.

In the field of desk top publishing, it is common to have a scannerdevice as part of the office equipment rather than a densitometer orcolorimeter. It is therefore convenient to use the scanner to calibratethe printer. The state of the art describes using a scanner as acalibrating device, wherein the scanner scans a print target andmeasures the densities of ink deposited on the target. The systemmeasures the densities or colorimetric values of the color samplesgenerated by a printing device.

Although the scanner is more convenient that using the other calibrationdevices, the quality is usually lacking. Scanners operate on a linearsensitivity scale, not a logarithmic density scale. Based on scannerdeficiencies, the tonal and spectral scanner outputs vary even whenmeasuring the same colored object. Thus, not only would similar scannersproduce different results, but the same scanner suffers from degradationof performance over time.

To accomplish calibration between a printer and scanner, a transform isused in a digital image processor that maps the color signals of thescanner to the printer color signals so that the color reproductionsystem reproduces the colors present of the original images. Often thetransform is implemented by employing a three dimensional lookup table(LUT).

One method to calibrate a color reproduction system includes using thecolor scanner, a processor, and a color printer. This requirestransforming the color space environments. A first color transform isused to convert the scanner color signals, such as RGB signals, intocolor signals in a device independent color space. The second transformis used to convert color signals from the device independent color spaceto printer color signals such as CMYK signals.

It is possible to combine the two transforms into one functionimplemented by the processor that directly converts scanner colorsignals into printer color signals. The transformations are typicallyimplemented by storing calibration values in a three or four-dimensionalLUT and using a linear interpolation method to interpolate betweenvalues in the lookup table.

A typical printer and scanner calibration involves printing a set ofcolor patches on the printer, measuring the color patches using anoptical instrument and using a mathematical method such as regression toderive the printer transform based on the measured data. The calibrationcontinues by scanning a set of test patterns, measuring the testpatterns using an optical instrument and employing a mathematical methodsuch as regression to then derive the scanner transform.

There are ways to decrease the time required to calibrate, includingusing a smaller number of sample points. This creates a lookup tablethat is much smaller and easier to search during the mathematicalmanipulation, however the accuracy during interpolation is much lower.

Another prior art approach is to sample a cube in the printer colorspace. For example, an RGB cube in the printer color space may beuniformly sampled along the R, G and B axis to provide a discrete set ofprinter color coordinates which are stored in a computer. These colorcoordinates are provided to a printer that prints color patchescorresponding to the specified color coordinates. The printed colorpatches are subsequently fed to a scanner and scanned to provide a setof scanner color coordinates that is a subset of the entire space ofcolor coordinates of the scanner. Thus, a direct correspondence isobtained between the set of stored printer color coordinates and the setof scanned color coordinates.

The terms calibration, characterization and profiling are sometimesincorrectly used interchangeably. For purposes of this application, theterms are distinguished herein. Calibration refers to the process ofderiving a transform by comparing a device output to some referenceoutput and generating a lookup table. This is a device dependentprocess. Calibrating a device returns the device to some normalized,standard, and predictable state. Therefore, calibrating a monitor, ascanner or a printer alters the behavior of that device.

Profiling, also called characterizing or describing is really adescription of the color capabilities of the device. Profiling measuresthe device properties and transforms the properties into some usableform as part of a color management system. Profiling does not change thebehavior of that device as with calibration, but rather compliments thecalibration. However, it does not preclude the need to calibrateindividual devices to ensure that the process that created thecharacterization remains consistent.

Because some coloration inaccuracies are introduced when switchingbetween different color spaces, and device profiling is useful tocorrect such inaccuracies. Device profiling measures the inaccuraciesand corrects them in a device-independent color space (LAB). By workingin the device independent LAB environment, improved color conversionsbetween devices is possible.

To generate a profile, software is used to determine the device's fullcolor range capabilities. The gamut of the device is determined bymeasuring the colorimetric values for a set of known color patches ortargets. The measured data is then used to generate a custom profile forthe device. The profiles are then applied to an image data to compensatefor any transformation inaccuracies.

The International Color Consortium (ICC) created a standardized systemfor describing the color-rendering capabilities of any device. The ICCprofile defines the gamut of the device, and a measure of the colordistortion. The ICC profile actually has two components, the firstelement contains hardware data about the device, and the second elementis the colorimetric device characterization data that defines the mannerin which the device establishes color.

The profiles are used in conjunction with the other color-managementengine and the application programs that use the profiles. The genericprofiles provided by the manufacturer are often based on a perfectlycalibrated device, and do not generally provide the accuracy required inmodern systems. Therefore, custom profiles are utilized to enhance thefactory profiles and provide more accurate color reproductions.

The purpose of profiling is to accurately define the reproducible andrepeatable gamut of a device. This is accomplished by using a referencetarget on the device and measuring the device's reproduction values.Software is used to build a transform that maps scanner color spacevalues to device independent color values. The transform is typicallybuilt by using a mathematical technique such as the least squaresalgorithm with the reference data and measured data.

A typical scanner profiling process involves scanning a reference targetthat has numerous color patches. IT8 is one such reference standard.Software is used to compare the color reference values that accompanythe target with the measured values. The entire process is a comparisonof reference data and measured data.

Some profiling packages only profile a scanner's raw color space whileothers create a corrective profile, wherein a scanner driver uses theICC profiles of the device to incorporate the physical limitations ofthe device in the processing.

Printers are more difficult and time-consuming to profile because theydo not emit light and require another device, properly calibrated, tomeasure the color data. The printer prints a target that contains thecolor patches. The printout is measured by a color measuring device,such as a spectrophotometer, and software uses the measured values tobuild a transform that maps device independent colors to the printer'scolor space. Various factors affect the printer color values, includingpaper stock, ink, temperature, and pressure, so other variable andcalculations are required for processing.

The typical custom profile is produced by comparing measured colorvalues against reference values. For example, a scanner profile isproduced by scanning a color target, wherein the profiling applicationconverts the scanned data into device independent values. The deviceindependent values are compared to the CIE values for the referencetarget, and a custom profile is created to correct any deficiencies. Thereference target is normally the industry-standard IT8 target thatcontains 264 color patches plus 24 shades of gray.

Printers are more difficult and time-consuming to profile because theydo not emit light and require another device, properly calibrated, tomeasure the color data. The profiling software compares the measureddata to the target values and produces the correction data. By comparingthe measured colors with the color values, a custom profile isdeveloped.

A color management system comprises interconnected devices such as ascanner, monitor, printer, and computer, with a software applicationthat handles the color reproduction between the application and variouscolor devices. The system interacts with the processing means and thememory means of the system to control the devices, processtransformations, and store data. The software performs the colortransformations to exchange accurate color between diverse devices, invarious color coding systems including RGB, CMYK and CIEL*a*b*. Intheory, the color management system evaluates capabilities of the systemand devices and determines the appropriate color device and color space.However present systems have significant difficulties implementing sucha system in a commercially feasible manner.

There have been various attempts at creating cost-effective and qualitycolor calibration systems that address the aforementioned problems. Onesuch system describes a closed loop system that calibrates a scanner toa printer. The calibration profile created by the system resides in thescan driver so the scanned images are pre-calibrated for the specifiedprinter. The calibration profile is created by the following steps:

-   1. The scan driver creates an image with color patches.-   2. This image is passed through the printer path until the color    patches are printed.-   3. These color patches are scanned by the scanner.-   4. The system builds a profile that maps desired RGB values to RGB    values that when printed will actually produce the desired RGB    values.-   5. This profile is then applied to all images scanned for the    desired printer.

This calibration scheme has the disadvantage of forcing the user to workwith images that are calibrated for a particular printer. For correctscreen viewing the images must be translated from printer space tomonitor space. Images that were-scanned for one printer will not workwith another printer, as the data is device dependent. Even imagesscanned for the same printer will become incompatible if the paper type,ink type, or some other variable is changed.

There are additional problems with the system. The scanner is notprofiled, and as known in the industry, quality results require that thescanner be properly profiled. Also, the color space of the printer isnot RGB, and printers often have poor internal profiles that result inthe printing of RGB images that look very poor on the screen.

The present invention is distinguishable because it profiles both thescanner and the printer individually and is not truly a closed loopsystem. The present system produces two profiles: a scanner profile anda printer profile. Both profiles translate to and from a deviceindependent color space, thus images from the scanner are independent ofany device that is attached to the printer and images that go to theprinter are independent of the printer. Images from the scanner can beprinted on many different printers and images from many sources can beprinted on the printer.

Another system known in the art describes a closed loop system where thescanner output is mapped to a printer input. The primary difference isin the implementation details, but suffers from the same inherentproblems as the other prior system. The steps of the this systeminclude:

-   1. Determine the relationship between equal printer color signals    and averaged scanner color signals.-   2. Produce a set of color patches uniformly distributed in scanner    color space on the printer.-   3. Scan the patches with the scanner.-   4. Produce a look-up table from printer to scanner.-   5. Invert the look-up table to go from scanner to printer.

Another existing system uses a scanner and printer to calibrate the pathfrom the scanner to the printer. It includes non-linear interpolationand gamut mapping techniques. As with the other prior systems, it doesnot solve the problem of accurately calibrating the scanner that wouldlikely result in color reproduction problems.

A further color matching system known in the art uses a deviceindependent color space to map colors from one device to another underdifferent viewing conditions. Similar systems are common and supportedby the industry standard ICC specification.

Another system that calibrates a printer by using the scanner as adensitometer is known in the art. The scanner is used as a densitomiterby scanning an image with known densities and building a look-up tablethat translates RGB values to density. Patches composed of separate inksat different levels are printed and measured by the scanner. Thesemeasurements are then used to calibrate the printer. This system doesnot actually characterize a printer but uses the scanner to return aprinter to a known state so a pre-built table will function correctly—acalibration function.

In distinction, the system of the present invention uses the data fromthe scanner to actually build the types of tables that accuratelyreproduce the color values. A simultaneous scanning method is used,wherein the printed calibration image and the gray scale test strip arescanned simultaneously to overcome scan to scan error and to reduce thenumber of user steps in the calibration process. While the patchesmeasured by the prior system can only be used to re-calibrate thedevices, the present invention techniques can fully characterize thedevices.

Yet a further system known in the art is a method of adjusting thecalibrations of a scanner and a printer by scanning in calibrationimages and comparing the scanned data to previous data. In this knownembodiment, the system first scans a calibration target with known colorvalues, compares the scanned values with the known values and producescalibration data. Then it prints calibration patches, scans the patches,and compares the scanned patches to previously printed patches andproduces calibration data. Finally, it combines the two sets ofcalibration data to produce data that calibrates both the printer andscanner. A difference between this system and the present invention isthat the prior system compares calibration data when calibrating aprinter. The present system produces a printer profile by understandinghow the printer produces a particular color and then building a tablethat allows that color to be printed. The prior system also has nosimultaneous scanning or compensation table.

There are some commercial products have tried to alleviate theaforementioned problems. One company displayed color calibration systemthat uses the combination of a color measurement device such as aspectrophotometer and a scanner to calibrate a printer. With thissystem, color patches were first printed with a printer. A very smallnumber of the patches were then read with the measurement device andthen the entire set of patches was read with the scanner. The patchesthat were read with the measurement device and the scanner was used tocalibrate the scanner and the calibration of the scanner was then usedto modify the entire patch set so that a printer calibration could bemade. This system has the advantage of calibrating the scanner andprinter with just one scan and also calibrating the scanner to theprinter. However, the system also requires the use of an expensivemeasurement device and has the disadvantage of calibrating the scanneronly to the printer, not with more common photographic materials orreflective works.

Providing efficient and accurate color reproduction remains a problembecause of numerous difficulties described herein. What is needed is apractical and simple means to produce a printer profile. There should bea color reproduction system that provides reproduced colors that matchthe original colors. This system would provide color matching to beperformed between a scanner and a printer without the use of expensiveadditional photometric equipment such as a spectrophotometer. Theprofiling results should be device independent so that the equipment canbe substituted. The profiling should also be preformed in a single stepto reduce the time required for profiling and to avoid anyscanner-setting errors.

BRIEF SUMMARY OF THE INVENTION

The present invention is to provide a color reproduction system thataddresses the aforementioned problems. The present invention producesaccurate printer ICC profiles from a scanner. The present system alsoproduces a scanner ICC profile however the scanner profile is not arequirement of the invention. A scanner profile is created that can beused to process images intended for any output device. A printer profileis created that can be used to print images from any source. Using ascanner compensation table allows any scanner to function more closelyto a spectrophotometer and ensures more accurate color data collectionthan can normally be obtained from a scanner.

Another feature of the invention is to scan the scanner calibrationtarget at the same time as the printer calibration target, and use thesetargets to fully calibrate both the scanner and printer. Scanning bothtargets simultaneously significantly reduces scanner-setting errors,ensures the color data in both targets is measured under identicalconditions, and decreases the profiling process.

Another aspect of the invention is the compensation color transform thatimproves the quality of the color reading produced by the scanner. Thecompensation transform compensates for the difference between how ascanner scans a photographic target and how it scans a printed target.Photographic and printed materials all have unique spectral propertiesthat a scanner is sensitive to and can measure. The differences betweenphotographic and printed materials are often large enough to cause ascanner that has been properly calibrated for photographic material tomisread printed material. The algorithms of the present invention mapthe same RGB value from a scanner to different CIEL*a*b* values when theRGB values come from patches with different ink values.

One embodiment of the invention is a scanner system comprising aphysical scanner, scanner driver software, scanner ICC profile, centralprocessing unit (CPU), storage means, monitor, printer, printer driver,printer ICC profile, profiling application, sets of compensationtransforms, an IT8 photographic target, and a print target printed bythe printer, wherein the scanner ICC profile is produced by thecompensation transforms. The print target and photograph target arescanned simultaneously and the profiling algorithms calculate accurateprinter ICC profiles.

Another embodiment of the present invention is a method of profiling,comprising the steps of printing a print target, placing and IT8 Q60scanner target onto the print target to produce a combined target,scanning the combined target, processing the scanner data to produce ascanner ICC profile, processing the printer data to produce deviceindependent color values, selecting a compensation transform, andbuilding a printer ICC profile.

An additional aspect is the generation of a scanner profile that can beused to process images intended for any output device. Furthermore, aprinter profile is created that can be used to print images from anysource.

Yet another feature is the use of a scanner compensation table thatallows any scanner to function more closely to a spectrophotometer andensures more accurate color data collection than can normally beobtained from a scanner.

Yet a further embodiment of the invention includes scanning both thereference target and the print target simultaneously thereby reducingscanner-setting errors and ensuring the color data in both targets ismeasured under identical conditions. Scanning simultaneously, thesetargets can be used to fully calibrate both the scanner and printer.

Another feature of the invention is a method of creating a compensationtransform that uses the least squares algorithm to solve the equationy=Ax where x is an array of CIELAB values from the calibrated scanner, yis an array of compensated CIELAB values, and A is a matrix thattransforms between x and y. The x array currently contains non-linearcombinations of the CIELAB values. The array x is defined as:

-   -   x[0]=L    -   x[1]=a    -   x[2]=b    -   x[3]=L²    -   x[4]=a²    -   x[5]=b²    -   x[6]=La    -   x[7]=Lb    -   x[8]=ab    -   x[9]=L³    -   x[10]=L²a;    -   x[11]=L²b;    -   x[12]=La²;    -   x[13]=Lab;    -   x[14]=Lb²;    -   x[15]=a³;    -   x[16]=a²b    -   x[17]=ab²;    -   x[18]=b³;

The matrix A can be computed by using the calibrated scanner andspectrophotometer data with the least-squares algorithm.

Another method involves creating the compensation table that takes intoaccount the fact that scanners read different inks and paper typesdifferently. A printer with more than three inks is generally capable ofprinting exactly the same color with more than one differentcombinations of ink. Unfortunately, these different ink combinations maynot be read the same by a scanner because of the spectral differences ofthe inks. In addition, the scanner can see different colors as the samebecause of the differences in the inks. This embodiment of thecompensation transform uses different transforms for differentcombinations of inks and takes advantage of the fact that the ink valuesfor each patch in the print target are known.

A further aspect is to provide a color reproduction system suitable forthe graphic arts, such as printings, sign making, and color correctionand also for medical imaging, and color imaging applications.

An additional embodiment is a method of profiling a color printer usinga scanner comprising the steps of printing a print target on said colorprinter, placing a reference target onto the print target to produce acombined target, and scanning the combined target on the scanner toproduce a scanned image. The scanned image comprises reference targetdata and print target data. Processing the reference target dataproduces a scanner profile, and processing the print target data withthe scanner profile produces an uncompensated printer profile data. Thenext step requires adjusting the uncompensated printer profile datausing a compensation transform. Finally, building a printer profile andstoring the printer profile.

A further feature includes the printing performed without using aprinter profile so a full gamut is achieved. In addition, the referencetarget can be IT8. Yet a further aspect is where the compensationtransform is processed using the least squares algorithm.

An additional aspect includes wherein the compensation transformcompensates for ink differences, and in particular, to produce thecompensation transform. A further aspect compensates for paperdifferences. One aspect includes manually cropping the combined targetor automatic cropping of the combined target. A further aspect is forinputting data for the compensation transform, wherein such datarepresents the user's device type, paper type and/or ink type. Anotheraspect is wherein the uncompensated printer profile data is expressed asdevice independent colors pace values.

One embodiment of the invention is a method of producing compensationtransforms comprising the steps of generating a plurality of colorreference patches, scanning the patches to produce scanned color spacevalues, measuring the patches with an optical measuring device toproduce measured color space values, and creating a compensation tablefrom the scanned color space values and the measured color space values.Another aspect includes wherein the compensation transform for CMYK inkswith linear interpolation is processed using the formulay=af₀(x)+(1−a)f₁(x). The optical measuring device may be aspectrophotometer.

Another embodiment of the invention is for a color profiling system forproducing a device independent printer profile comprising a printersection having a printer driver and a printer device, wherein theprinter device prints a print target. There is a scanner section thatincludes a scanner driver and a scanner device. A combined target isgenerated with the print target and a reference target, wherein thecombined target is scanned by the scanner device to produce a combinedtarget data. There is a processing section for processing the combinedtarget data, wherein the processing section produces a scanner profileand uncompensated printer color patch readings in device independentcolor space values. There is a compensation transform module fortransforming the uncompensated printer color patch readings intocompensated printer color patch readings, and a processing section forprocessing the compensated printer color patch readings into a printerprofile.

Still other features, objects and advantages of the present inventionwill become readily apparent to those skilled in this art from thefollowing detailed description, wherein only one embodiment of theinvention is described, simply by way of illustration for carrying outthe invention. As will be realized, the invention is capable of otherand different embodiments, and its several details are capable ofmodifications in various obvious respects, all without departing fromthe invention. Moreover, it should be noted that the language used inthe specification has been principally selected for readability andinstructional purposes, and not to limit the scope of the inventivesubject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be readily understood by the followingdetailed description in conjunction with the accompanying drawings,wherein like reference numerals designate like structural elements, andin which:

FIG. 1 is a block diagram illustrating a prior art profiling system.

FIG. 2 is a block diagram of a present invention profiling system.

FIG. 3( a) is a flow chart of the profiling process.

FIG. 3( b) is a flow chart of the profiling process.

FIG. 4 shows reference patches generated for a CMYK device.

FIG. 5 depicts the building of the compensation transforms.

FIGS. 6( a)(b)(c) shows the process used to fill in the table.

DETAILED DESCRIPTION OF THE INVENTION

A prior art profiling system is illustrated in FIG. 1, having a printersection 5 containing a printer 10, an associated printer driver program20 and a printer ICC profile 30. The printer driver 20 is the interfacebetween the user and the printer section 5, and has the softwarecommands to control the printer 10. The printer ICC profile 30 containsdata and information that is used by the digital processing schemes tomake the color reproductions. A scanner section 60 has a scanner device70, a scanner driver 80, and a scanner ICC profile 90. The computer orCPU 100 is the processing and memory means for the system and isinterconnected to the various components, which may include any numberof image source devices such as a digital camera, internet access, DVD,and CD-ROM. A monitor 95 provides the visual interface to the user and amonitor ICC profile 105 provides the color correction for the display.

In a prior art operation, the CPU 100 sends a print instruction to theprint driver 20 that represents the color print target 40. The printdriver 20 issues the print command for the color print target 40,wherein the RGB data representing the print target is altered by theprinter ICC profile 30, and the corrected print target 40 is printed bythe printer 10 as the output image.

The scanner 70 scans the print target 40, to produce a digitized printtarget image. The digitized print target image goes through the scannerdriver 80 and the RGB digital data is altered by the scanner ICC profile90. The corrected digital print target data is then processed by the CPU100 wherein a software application compares the color space values ofthe print target data to the color space values some reference target.Based on this comparison, device dependent correction profile data iscalculated and stored and used as the printer ICC profile 30 for allfurther printouts by the printer 10.

Scanner calibration is accomplished by scanning a reference print target50 with the scanner 70. The digitized reference target image goesthrough the scanner driver 80 and the RGB reference target digital datais altered by the scanner ICC profile 90 to account for scanner errors.The corrected reference target digital data is then processed by the CPU100 wherein a software application compares the color space values ofthe scanned reference target data to the color space values of thereference target that accompany the reference target and are usuallyobtained in a factory setting using a spectrophotometer. Based on thiscomparison, device dependent correction profile data is calculated andstored to customize the scanner ICC profile for all future scanning bythe scanner 70.

A representation of the profiling system of the present invention isillustrated in FIG. 2. Printer section 5 contains a printer 10 with anassociated printer driver program 20. The printer driver 20 is theinterface between the user and the printer 10, and has the softwarecommands to control the printer 10. In the profiling system, the printerICC profile 140 is bypassed to produce a raw printout.

The central processing unit (CPU) or computer 100 is interconnected withthe printer section 5. The profiler 110 is a software program residentin the computer 100 and communicates with the printer 10 through theprint driver 20 to produce a color print target 40, without profiling.The print target 40 is typically a set of color patches, and is orientedonto the same page 45 as the reference target 50. In one embodiment thereference target 50 is attached to the lower half of the page 45 withtape. Other locations and securing means are well within the scope, ofthe invention. The reference target 50 is a predetermined standard thatcomes with color space values, and is used in conjunction with theprofiling software 110 to create a scanner ICC profile 130 as well asprovide the reference for the printer ICC profile 140.

The scanner section 60 contains the scanner assembly 70, and the scannerdriver 80. The combination of the scanner 70 and the scanner driversoftware 80 produce an RGB image of the image that is scanned. As shown,the combined reference target 50 and the print target 40 are scannedsimultaneously to produce an RGB image that is processed by theprofiling software 110. The combined image may be cropped on the monitor95 manually, or it may be automatically cropped to isolate the twoimages from the single scanned image. The profiler 110 processes thereference target data to produce the scanner ICC profile 130.

The print target data is processed by the profiler 110 using the scannerICC profile 130 to produce uncompensated color space values. Theprofiling software 110 processes the uncompensated print target datausing compensation transforms 150. Compensation transforms 150 arecreated for a scanner by using print targets 160 on various types ofpaper, and varying inks to assemble a list of different printpossibilities. The print targets 160 are measured by optical instruments180 such as a spectrophotometer and also scanned by a scanner 170 toproduce tables 190 for the various inks and paper types.

The profiler 110 produces a new scanner ICC profile 130 and a newprinter ICC profile 140 to produce accurate print reproductions. Theprinter ICC profile 140 is communicated is stored and utilized by theprinter section 5. The scanner ICC profile 130 is stored and used by thescanner section 60 to produce accurate reproductions.

The steps of the present invention are depicted in FIG. 3( a) and FIG.3( b). In the first step 200, the profiler generates an instruction setfor a set of color print patches for the print target. These printpatches provide a representation of the entire color space of theprinter. For an RGB printer, the patches might contain every possiblecombination of red, green, and blue where the red, green, and blue inkscan only have the values of 0, 32, 64, 128, 160, 192, 224, or 256. Sucha patch set would have 512 patches.

The instruction set for these patches are passed to the print driver inthe next step 210, and then sent directly to the printer for printingthe target 220. In one embodiment the printer driver translates theinstruction set into print commands and issues them to the printer withno color correction or profiling. The print target can be printed withno profiling because the present system replaces the profiles, andbecause most profiles reduce the color gamut that a printer can print. Aprofile built on top of such a profile is inferior to a profile builtwithout such a profile.

There are certain situations in which a profile can not be bypassed,such as when printing occurs through the standard print driver of aninexpensive home printer. Most of these printers use CMYK inks, but theprint drivers are RGB. The RGB to CMYK transform is a profile that cannot be avoided. In other cases, a built-in profile might produce betterresults because of some non linearity of the printer that can not becaptured by the print target.

In the next step 230, the print target and the reference target areplaced on the same sheet. In one embodiment an IT8 reference target istaped to the lower portion of the print target sheet. Combining thetargets prevents many significant scanner setting problems (such as autowhite balancing) from damaging the readings. The reference target has anassociated data file that specifies the CIEL*a*b* values of its colorpatches which are obtained in a factory setting.

The combination of the reference target and the print target on singlesheet of paper is scanned by the scanner 240 and a data set of thecombined reference target and print target is generated. Next, 250 thescanner output data set passes through the scan driver resulting in anoutput that is an RGB image with the combined targets.

The reference target and the print target are located and identifiedfrom the single image 260. In one embodiment the two targets are croppedeither manually or automatically. Manual cropping is accomplished bydisplaying the image on the monitor, wherein the user places crop pointson each of the corners of the reference target and the print target.Automatic cropping uses a software algorithm to identify the respectivetargets. With proper alignment and standardization, it is possible toeliminate cropping by having the locations of the targets predefined.

The reference target image is processed in step 270 to produce a list ofreference target RGB values for each patch. The reference RGB values areprocessed by the profiler to build a scanner ICC profile 280. Thisscanner ICC profile allows images to be scanned very accurately by thescanner. However this is not the only purpose of the scanner ICCprofile.

The scanner ICC profile is also processed with the printer RGB values instep 290 to produce uncompensated CIEL*a*b* values. The transform thatwas used to create the scanner ICC profile may also be used. In largepart, these CIEL*a*b* values are now independent of individualdifferences between scanners. Any errors in the data are common to mostscanners.

In order to adjust the uncompensated values, information about thepaper, inks, and possibly even the device are required. This is one ofthe elements that distinguish the present invention. Although there aresome systems that perform profiling functions, none of the prior systemsutilize information about the paper, inks or device types in theprofiling, and this information allows the present system to producehighly accurate scanning.

The compensation color transform improves the quality of the colorreading produced by the scanner. For example, the algorithms of thepresent invention map the same RGB value from a scanner to differentCIEL*a*b* values when the RGB values come from patches with differentink values. Compensation transforms are created by generating printtargets on various types of paper, varying inks, and possibly evenvarious devices to assemble a list of different print possibilities. Theprint targets are measured by optical instruments such as aspectrophotometer and also scanned by the scanner to produce tables thatare used as part of the compensation transform.

The input for the paper type or ink may be predefined or a user caninput the information. The compensation transform is applied to theuncompensated CIEL*a*b* values 300. The compensation transformcompensates for the errors that are common to how most scanners read theparticular ink and paper combination being used. Since different ink andpaper combinations cause different errors, compensation transformsaddress this problem.

Once the user selects the properties of the printer such as the inks andpaper type, the compensation transform adjusts the uncompensatedCIEL*a*b values 310. And finally, 310 the compensated CIEL*a*b* valuesare used by the profiler to build a printer ICC profile which is storedand used by the printer. If the compensation table has correctlycompensated for the scanner errors, the printer profile will be almostas accurate as a profile created using a spectrophotometer.

The compensation transforms are typically created at the factory byprinting print targets using many combinations of paper, inks, andprinters. Each print target is read by a spectrophotometer or similardevice and scanned by a calibrated scanner. The data from thespectrophotometer and the calibrated scanner is combined to form thetables for the compensation transform.

In the present invention, compensation transforms are created and areapplied to the uncompensated CIEL*a*b data that results from processingof the print RGB data with the scanner ICC profile. Although there arevarious methods, two methods of creating the compensation transform aredescribed herein.

A first method of creating the compensation transform for the presentinvention uses the least squares algorithm to solve the equation y=Axwhere x is an array of CIELAB values from the calibrated scanner, y isan array of compensated CIELAB values, and A is a matrix that transformsbetween x and y. The x array currently contains non-linear combinationsof the CIELAB values. The array x is defined as:

-   -   x[0]=L    -   x[1]=a    -   x[2]=b    -   x[3]=L²    -   x[4]=a²    -   x[5]=b²    -   x[6]=La    -   x[7]=Lb    -   x[8]=ab    -   x[9]=L³    -   x[10]=L²a    -   x[11]=L²b    -   x[12]=La²    -   x[13]=Lab    -   x[14]=Lb²    -   x[15]=a³    -   x[16]=a²b    -   x[17]=ab²    -   x[18]=b³

The matrix A is computed by using the calibrated scanner andspectrophotometer data with the least-squares algorithm. Althoughleast-squares algorithms are well known in the industry, theimplementation of the algorithm at this juncture of the process isunique.

The second method of creating the compensation table is more complex,and takes into account the fact that scanners read different inks in adifferent manner. A printer with more than three inks is generallycapable of printing exactly the same color with more than one differentcombinations of ink. Unfortunately, these different ink combinations maynot be properly read by a scanner because of the spectral differences ofthe inks. In addition, the scanner can read different colors as the samebecause of the differences in the inks. The transform that uses theequation y=Ax could therefore never produce accurate results since twoidentical input values would need to produce two different outputvalues.

A second embodiment of the compensation transform solves the problem byusing different transforms for different combinations of inks. Thisembodiment takes advantage of the fact that the ink values for eachpatch in the print target are known. FIG. 4 illustrates how thereference patches are generated for a CMYK device, although theinvention works with other color spaces. When the reference printpatches at the factory are created, the patch sets are composed of cubesof the primary inks (typically CMY). The reference CMYK print patch 400is printed for a K=0 patch 410, a K=50 patch 420, and a K=100 patch 430.Each additional ink has a set of cubes associated with it. In FIG. 4,black has three cubes for the three values of black to be used in thepatches. Additional inks beyond black would require the use of cubes forblack, the additional ink, and combinations of black and the additionalink.

For each value of K in the patches (three values are illustrated 410,420, and 430), all combinations of CMY at certain step sizes areincluded. These combinations of CMY patches form CMY cubes 440, 450, and460. If a CMY cube has step sizes of 0 and 100, the CMY patches in thecube would be (0,0,0), (0,0,100), (0,100,0), (0,100,100), (100, 0, 0),(100, 0, 100), (100, 100, 0), and (100,100, 100). The CMYK patches thatare printed are organized into groups that correspond to the differentlevels of K. Each group has the same K value and the CMY values from theCMY cube.

For each of the cubes in the reference print patches, a compensationtransform is created. When the compensation is being performed,CIEL*a*b* values from the scanned print patches are run through themultiple transforms. The final output value is then calculated byinterpolating the output of the transforms based on the original inkvalues used to create the print patches. For an implementation for CMYKinks that uses linear interpolation, the equation of the transform inthis embodiment could be expressed as:y=af ₀(x)+(1−a)f ₁(x)where y is the compensated output, x is the uncompensated input, f₀(x)is the transform for the first K cube, f₁(x) is the transform for thesecond K cube, and a is a scaling factor determined by the print patch Kvalue that indicates where the ink value is between the ink values forthe first and second transform. The equation for a is:a=(k−k ₀)/(k ₁ −k ₀)where k is the K value for the scanned print patch, k₀ is the K valuefor the first transform, and k₁ is the K value for the second transform.Note that only the transforms just above and just below the scannedprint patch K value are used.

As illustrated in FIG. 5, the CIEL*a*b values can be represented as aslice for each value of K. The in gamut and out of gamut regions areshown for K=100 (470), K=50 (480) and K=0 (490). The compensationtransforms are built in two stages. The first stage is to build the ingamut parts of the transforms. The in gamut parts are those CIEL*a*b*values that are in the color gamut of the printer for the ink values ofthe transform. As illustrated, the gamut is smaller when more K isadded, as represented in the larger in gamut at K=0.

For the purpose of explaining the invention more clearly, it will now beassumed that the transform takes the form of a three-dimensional look uptable (3D LUT). The 3D LUT maps scanned uncompensated CIEL*a*b* valuesto compensated CIEL*a*b* values.

The in gamut part of the 3D LUT is built by first filling in the ingamut parts of the table. The process used to fill in the table isillustrated in FIGS. 6( a), (b) and (c), and for illustrative purposesthe CMYK color space is utilized. Each patch in the printer referencetarget is created with a unique CMYK value. For any transform, thepatches in its cube all have unique CMY values and the same K value.When these patches are read by a scanner and a spectrophotometer, eachCMY is matched to a scanned CIEL*a*b* value and a CIEL*a*b* value from aspectrophotometer. This matching is used to build a forward transformfrom the CMY values to the CIEL*a*b* values as shown in FIG. 6( a).

The forward table from CMY to scanned CIEL*a*b* values is inverted toproduce a CIEL*a*b* to CMY transform in FIG. 6( b). When this invertedtransform is combined with the forward CMY to spectrophotometerCIEL*a*b* transform, a scanner to spectrophotometer transform results asshown in FIG. 6( c). This transform is used to fill in all of the ingamut parts of the 3D LUT.

The out of gamut parts of the 3D LUT are filled in by using the in gamutdata points in the current transform combined with the in gamut pointsfrom other transforms. These data points are used with, for example, theleast squares algorithm, to build a set of transforms. Least squaretransforms used near in gamut LUT points primarily use points from thecurrent ink value 3D LUT. Least square transforms used far away from ingamut points use more data points from other ink value 3D LUTs. When allof the data points of the 3D LUT have been filled in, all of the out ofgamut points are smoothed. Smoothing the points ensures that the ingamut and out of gamut points match, and there are various smoothingalgorithms available for smoothing.

Once the compensation tables are generated, the information is madeavailable to the profiling system to adjust the uncompensated CIEL*a*bvalues. The compensation tables can be provided to the user as asoftware package or downloadable from the Internet.

It is well within the scope of the invention to incorporate varyingcolor spaces and image sources. The present invention has beenparticularly shown and described with respect to certain embodiments offeatures. However, it should be readily apparent to those of ordinaryskill in the art that various changes and modifications in form anddetails may be made without departing from the spirit and scope of theinvention. Additional objects and advantages of the present inventionmay be further realized and attained by means of the instrumentalitiesand combinations all within the scope of the claims. The drawings anddescription are to be regarded as illustrative in nature, and not asrestrictive

The foregoing description of the embodiments of the invention has beenpresented for the purposes of illustration and description. It is notintended to be exhaustive or to limit the invention to the precise formdisclosed. Many modifications and variations are possible in light ofthis disclosure. It is intended that the scope of the invention belimited not by this detailed description, but rather by the claimsappended hereto.

1. A method of producing color compensation transforms comprising thesteps of: using a calibrated scanner to scan at least a first colorreference patch and a second color reference patch to producecorresponding first and second scanned color space values, respectively,wherein the first and second color reference patches exhibit respectivefirst and second material compositions that are sufficiently different,one from the other, as to prevent a scanner, calibrated to the firstmaterial composition, from producing scanned color space values of ashigh a degree of accuracy with respect to scannable objects exhibitingat least the second material composition; and combining said first andsecond scanned color space values with at least the first and secondmeasured color space values to create a compensation table, the firstand second measured color space values being a result of the first andsecond color reference patches having been measured with an opticalmeasuring device; wherein said compensation table is selectively useableas part of said compensation transforms to enable a scanner to producescanned color space values of substantially as high a degree of accuracywith respect to a scannable object exhibiting said first materialcomposition as with respect to a scannable object exhibiting said secondmaterial composition.
 2. A method according to claim 1, wherein saidcompensation transforms for CMYK inks are processed for different levelsof K using the formula y=af₀(x)+(1−a)f₁(x), wherein y is the compensatedoutput, x is the uncompensated output, f₀(x) is a transform for a firstK cube, f₁(x) is a transform for a second K cube, and α is a scalingfactor.
 3. A method according to claim 1, further comprising the step ofinterpolating between different levels of K.
 4. A method according toclaim 1, wherein said first and second color reference patches representdifferent combinations of inks.
 5. A method according to claim 1,further comprising the step of transforming a color value of a colorpatch based on the original ink values of said color patch.
 6. A methodaccording to claim 1, wherein said optical measuring device is aspectrophotometer.
 7. A method according to claim 1, wherein saidcompensation transforms are a set of look up tables that map scanneduncompensated CIEL*a*b values to compensated CIEL*a*b values.
 8. Amethod according to claim 1, wherein said compensation transforms are aset of look up tables that map scanned uncompensated CIEL*a*b values tocompensated CIEL*a*b values for different combinations of ink values. 9.A method according to claim 1, further comprising the steps of mappingscanned CIEL*a*b values to optically measured CIEL*a*b values by using aCIEL*a*b to CMY transform with respect to said first and second scannedcolor space values and a CMY to CIEL*a*b transform with respect to saidfirst and second measured color space values.
 10. A method according toclaim 1, wherein said compensation transforms are a set of look uptables constructed out of gamut CIEL*a*b values using the least squaresalgorithm with CIEL*a*b values in the tables that are in gamut.
 11. Amethod according to claim 1, further comprising generating the first andsecond color reference patches.
 12. A method according to claim 1,further comprising using an optical measuring device to measure thefirst and second color reference patches to produce the first and secondmeasured color space values.
 13. A method according to claim 1, whereinthe first and second color reference patches exhibit respective firstand second material compositions sufficiently different, one from theother, with respect to at least one selected from a group comprisingrespective inks, respective combinations of inks, respective paper,respective combinations of ink and paper, and combinations thereof, asto prevent a scanner, calibrated to one of such first and secondmaterial compositions, from producing scanned color space values of ashigh a degree of accuracy with respect to scannable objects exhibitingany other of such material compositions than said first and secondmaterial compositions.
 14. A method according to claim 1, wherein thefirst and second color reference patches include at least two colorreference patches exhibiting substantially the same color, and yetexhibit respective material compositions sufficiently different, onefrom the other, with respect to at least one selected from a groupcomprising respective inks, respective combinations of inks, andcombinations thereof, as to prevent a scanner, calibrated to a one ofsuch first and second material compositions from producing scanned colorspace values of as high a degree of accuracy with respect to scannableobjects exhibiting the other of such first and second materialcompositions of said two color reference patches than with respect toscannable objects exhibiting said one of such first and second materialcompositions of said two color reference patches.
 15. A method ofproducing compensation transforms comprising the steps of: generating aplurality of color reference patches; scanning said patches to producecolor space values, wherein the scanning is performed with a calibratedscanner; measuring said patches with an optical measuring device toproduce measured color space values; and creating a compensation tablefrom said scanned color space values and said measured color spacevalues; wherein said compensation transforms for CMYK inks are processedfor different levels of K using the formula y=af₀(x)+(1−a)f₁(x), whereiny is the compensated output, x is the uncompensated output, f₀(x) is atransform for a first K cube, f₁(x) is a transform for a second K cube,and a is a scaling factor.